GtkTreeExpander: claim expander-icon gestures
authorJan Lukas Gernert <jangernert@gmail.com>
Wed, 25 Aug 2021 15:50:12 +0000 (17:50 +0200)
committerJan Lukas Gernert <jangernert@gmail.com>
Wed, 25 Aug 2021 15:50:12 +0000 (17:50 +0200)
Claim the pressed, released and canceled gestures
meant for the expander-icon of the TreeExpander.
This avoids selecting the row when expanding or collapsing it.

Closes #4199

gtk/gtktreeexpander.c

index a13c2400b4dfe3c4a1415a32c2c4ec47d6c1d70b..2b4e8b415dc820aaae406a6f51a9af5d0c506b53 100644 (file)
@@ -119,6 +119,8 @@ gtk_tree_expander_click_gesture_pressed (GtkGestureClick *gesture,
   gtk_widget_set_state_flags (widget,
                               GTK_STATE_FLAG_ACTIVE,
                               FALSE);
+
+  gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED);
 }
 
 static void
@@ -130,6 +132,8 @@ gtk_tree_expander_click_gesture_released (GtkGestureClick *gesture,
 {
   gtk_widget_unset_state_flags (gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture)),
                                 GTK_STATE_FLAG_ACTIVE);
+
+  gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED);
 }
 
 static void
@@ -139,6 +143,8 @@ gtk_tree_expander_click_gesture_canceled (GtkGestureClick  *gesture,
 {
   gtk_widget_unset_state_flags (gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture)),
                                 GTK_STATE_FLAG_ACTIVE);
+
+  gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED);
 }
 
 static void